import type { RouterJumpVo } from '@/pagesA/api/workflow/workflowCommon/types';

// 构建查询参数字符串的工具函数，兼容小程序环境
function buildQueryString(params: Record<string, any>): string {
  return Object.entries(params)
    .filter(([_, value]) => value !== undefined && value !== null && value !== '')
    .map(([key, value]) => `${encodeURIComponent(key)}=${encodeURIComponent(String(value))}`)
    .join('&');
}

export default {
  routerJump(routerJumpVo: RouterJumpVo) {
    // 构建查询参数 - 使用工具函数，兼容小程序环境
    const queryParams = buildQueryString({
      id: routerJumpVo.businessId,
      type: routerJumpVo.type,
      taskId: routerJumpVo.taskId || ''
    });

    // 构建完整的URL
    const url = `/pagesA` + `${routerJumpVo.formPath}?${queryParams}`;

    // 使用 uni.navigateTo 进行页面跳转
    uni.navigateTo({
      url: url,
      success: () => {
        console.log('页面跳转成功');
      },
      fail: (err) => {
        console.error('页面跳转失败:', err);
        // 如果 navigateTo 失败，尝试使用 redirectTo
        uni.redirectTo({
          url: url,
          fail: (redirectErr) => {
            console.error('页面重定向也失败:', redirectErr);
            uni.showToast({
              title: '页面跳转失败',
              icon: 'error'
            });
          }
        });
      }
    });
  },
  routerJumpFinsh(routerJumpVo: any) {
    // 构建查询参数 - 使用工具函数，兼容小程序环境
    const queryParams = buildQueryString({
      id: routerJumpVo.businessId,
      type: routerJumpVo.type,
      taskId: routerJumpVo.taskId || '',
      approveName: routerJumpVo.approveName,
      historyTaskId: routerJumpVo.historyTaskId
    });

    // 构建完整的URL
    const url = `/pagesA` + `${routerJumpVo.formPath}?${queryParams}`;

    // 使用 uni.navigateTo 进行页面跳转
    uni.navigateTo({
      url: url,
      success: () => {
        console.log('页面跳转成功');
      },
      fail: (err) => {
        console.error('页面跳转失败:', err);
        // 如果 navigateTo 失败，尝试使用 redirectTo
        uni.redirectTo({
          url: url,
          fail: (redirectErr) => {
            console.error('页面重定向也失败:', redirectErr);
            uni.showToast({
              title: '页面跳转失败',
              icon: 'error'
            });
          }
        });
      }
    });
  }
};
